home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / Other / split-to-unison < prev   
Lisp/Scheme  |  1998-10-22  |  1KB  |  54 lines

  1. split-to-unison 
  2. name symbol-list &rest length-lists
  3.  
  4. this cousin to split-to-parts is very useful if you
  5. work with neurones and other stuff to match notes.
  6. with this function you can make all rhythms play melody
  7. in unison as far as possible.
  8. so then you can for instance transpose a part and get
  9. perfect parallels on all unison rhythm-notes.
  10.  
  11. (setq mel '(a b c d e f g))
  12. (setq mel2 (symbol-transpose 4 mel))
  13. (setq rhy1 '(1/8 1/8 1/8 1/8 1/8 1/8 1/8)) 
  14. (setq rhy2 '(1/4 1/4 1/4 1/4 1/4 1/4 1/4))
  15.  
  16. this wont result in parallels since rhythms are different.
  17.  
  18. instead do like this:
  19.  
  20. (split-to-unison nil mel 
  21.  rhy1 rhy2)
  22. ((a b c d e f g) (a c e g a b c))
  23.  
  24. you can bind the results
  25. with setq to name if name is other than nil.
  26.  
  27. (split-to-unison 'rhy-mel mel 
  28.  rhy1 rhy2)
  29. -> prints and binds
  30. (setq rhy-mel1 '(a b c d e f g)) 
  31. (setq rhy-mel2 '(a c e g a b c))
  32.  
  33. so now transpose rhy-mel2 instead of mel:
  34. (setq mel3 (symbol-transpose 4 rhy-mel2))
  35. ->(e g i k e f g) 
  36.  
  37. and then:
  38. (def-length i1 rhy1)
  39. (def-length i2 rhy2)
  40. (def-zone default '(4/1))
  41. (def-symbol i1 mel)
  42. (def-symbol i2 mel3)
  43. and so on. . .
  44.  
  45. you can use as many rhythms as you like:
  46.  
  47. (split-to-unison nil
  48.  '(a c a b a) '(1/8 1/8 1/8 1/8 1/8) '(1/4 1/4 1/4 1/4 1/4) '(1/2 1/16 1/16 1/8 1/8) '(-5/4 1/1) 
  49. '(1/12 1/12 1/12 3/8 5/16))
  50. ->((a a a a c) (a a c a a) (a c a b a) (c) (a c b a b))
  51.  
  52.  
  53. se also split-to-parts.
  54.